package com.sunspring.zdcall.service;


import com.sunspring.zdcall.dto.ClientDto;
import com.sunspring.zdcall.entity.ZdBaseClient;
import com.sunspring.zdcall.entity.ZdClientLogin;
import com.sunspring.zdcall.param.ClientParam;

import java.util.List;

/**
 * @Author XJ
 * @Date 2018/11/27  16:54
 */
public interface ClientService {


    /**
     * 根据客户端ID查看客户端信息
     * @param clientId 客户端Id
     * @return ClientDto
     */
    ClientDto getClientById(String clientId);


    /**
     * 注册客户端
     * @param clientParam ClientParam
     */
    void register(ClientParam clientParam);

    /**
     * 新增客户端信息
     * @param clientParam ClientParam
     */
    void addNewClient(ClientParam clientParam);

    /**
     * 更新客户端注册参数
     * @param clientParam ClientParam
     */
    void updateClient(ClientParam clientParam);

    /**
     * 保存客户端配置参数
     * @param client ZdBaseClient实体
     */
    void saveProperties(ZdBaseClient client);

    /**
     * 控制客户端停用/启用
     * @param clientId 客户端Id
     */
    void switchClient(String clientId);

    /**
     * 新增客户端日志
     * @param zdClientLogin ZdClientLogin
     */
    void addClientLog(ZdClientLogin zdClientLogin);

    /**
     * 根据clientParam参数条件查询客户端
     * @param clientParam ClientParam
     * @return List<ClientInfoBo>
     */
    List<ClientDto> selectAll(ClientParam clientParam);
}
